#ifndef FORTRESS_VIEW_H
#define FORTRESS_VIEW_H

#include "libtcod.hpp"

#include <list>
#include <string>
#include <vector>

#include "eventHandler.h"

namespace fortress
{
	struct COORD;
	class map;

	class view
	{
	private:
		const unsigned int maxDisplayItems;
		const int width;
		const int height;
		std::vector <std::vector<char> > display;
		std::vector <std::vector<TCODColor> > colors;
		map * currentMap;
		std::list<COORD*> * clearList;
		void drawMap();
		void getMapData();
		int hp,maxHp;

	public:
		view();
		~view();
		void drawGlyph(int x, int y, char glyph, TCODColor color);
		void draw();
		void setMap(map * newMap);
		void printMessage(std::string const & displayString);
		void printError(std::string const & displayString);
		void printDebug(std::string const & displayString);
		void clearMessage();
		void drawHealth(int hp, int maxHp);
		std::vector<int> drawMenu(std::vector<std::string*>, std::string, bool readOnly=0);

	};
};
#endif